1. Field of the Invention
The present invention relates to management of two or more versions of a program in which enhancement and maintenance are performed concurrently, and more particularly to a program management method and device for, when each version of the program is composed of two or more program modules, managing program module files, i.e., program files.
2. Description of the Related Art
When a program is composed of two or more program modules and it is available in two or more versions, the versions of the program will differ from one another in part or all of the program modules that make up that program. Note that the term "version" described herein is used to cover all of expressions such as "version", "level", "revision", and "release", etc., each of which generally means a generation of corrections or revisions of a program.
In general, the differences among versions of a program are due to differences among some of program modules that make up that program. Such program modules often differ with versions of program modules themselves. Of course, depending on the way to enhance the program, some versions may replace at least part of program modules used or make several additions to or deletions from program modules used.
Such a program composed of two or more program modules may require enhancement and maintenance to be performed concurrently in such a way as to, on the one hand, perform maintenance on an old version and, on the other hand, enhance that program to make a new version.
In such a case, source program files that correspond to all the program modules that make up the versions of the program, i.e., source files, are retained and an object file (object files) of a desired version of the program is generated from these program files as required for maintenance and enhancement.
Thus, if a program is available in two or more versions that require enhancement and maintenance to be performed concurrently, a program management tool in a conventional system requires storage sections each of which stores all the source files that make up a respective one of versions of the program. For such storage sections a history management file for managing different levels of source files is used. One such history management file is the source code control system (sccs) that is standard on the UNIX system. If a program is available in two or more versions, therefore, then two or more such storage sections will have to be provided. Thus, even if there are some program modules in common to the versions, source files of such program modules will be stored for each version.
If, in this case, there are source files of common program modules having no difference in contents among versions, the following problems will arise:
(a) In the presence of program modules common to versions, in order to make changes to such program modules it is required to make changes to each of source files of the program modules. PA1 (b) When changes are made to common program modules, it is required to make a check to ensure that changes have been certainly made to each of the corresponding source files in all of versions that use the common program modules. PA1 (c) When most program modules are common to two or more versions, in order to store all of source files a storage medium (for example, a disk) is required to have the amount of storage space which is substantially proportional to the number of the versions, i.e., two or more times that for one version (for two versions, about twice). PA1 (i) A facility is provided for managing program module files that make up two or more versions of a program, e.g., source files, by a single storage section and managing the relationship between physical entities in the storage section (i.e., source files at a point of time) and program versions that use the entities. PA1 (ii) For common source files with no difference in content among versions, a facility is provided for making the entities of the common source files available to two or more program versions. PA1 (iii) Even common source files with no difference in content among versions may become unavailable in common because of program enhancement. In such a case, a facility is provided for dividing the entity of a source file constructing a specific version of a program from the entity of the common source file in the same storage section. PA1 (iv) A facility is provided for allowing a source file user, i.e., personnel who updates or references a source file, to specify its entity and make access to it by simply specifying a program version.
An efficient technique of managing two or more generations of a source program is disclosed in Japanese Unexamined Patent Publication No. 63-37427 by way of example. According to this technique, source programs are stored with each individual source program set with generation control records for managing information which is generated each time a source program is created/updated and generation management fields for managing which generation the source program is in for each record in the source program. In this technique, two or more generations of source programs for the same source program are stored in such a way that for records in which there is no difference between generations, preceding generations of records are shared, and for subsequent generations only records in which changes are made from generation to generation are stored. This helps reduce the storage space of a storage medium.
However, the technique disclosed in that publication reduces the storage space of a storage medium for generations of a source program, but it is not intended to improve management of program modules for two or more versions of a program composed of two or more program modules.